<html>
    <head>
        <title>AutoFac集成</title>
    </head>
    <body>
        <script>
            //  AutoFac 集成

                /*
                    Autofac是最常用的依赖注入框架之一。它提供了与. Net Core的标准DI库相比的高级功能，如动态代理和属性注入。
                */

                /*
                    一、 安装Autofac NuGet包
                           所有 "启动模板" 和 示例都集成了 Autofac 。所以，大多数时候你不需要手动安装这个包。

                           如果你不使用启动模板，你可以使用ABP CLI 将其安装到你的项目中。在包含项目文件的文件夹下执行一下命令：

                                abp add-package Volo.Abp.Autofac

                           最后，配置AbpApplicationCreationOptions以用Autofac替换默认依赖注入服务。这取决于应用程序类型。
                           

                           1、 在 asp.net core 应用程序项目中，在Program.cs 文件中调用 UseAutofac(), 如下所示：
                                
                                    public class Program
                                    {
                                        public static int Main(string[] args)
                                        {
                                            CreateHostBuilder(args).Build().Run();
                                        }

                                        internal static IHostBuilder CreateHostBuilder(string[] args) =>
                                            Host.CreateDefaultBuilder(args)
                                                .ConfigureWebHostDefaults(webBuilder =>
                                                {
                                                    webBuilder.UseStartup<Startup>();
                                                })
                                                .UseAutofac(); //Integrate Autofac!
                                    }

                            2、在Console Application项目中的 Program.cs 文件中，调用 UseAutofac()，如下所示：
                                    using System;
                                    using Microsoft.Extensions.DependencyInjection;
                                    using Volo.Abp;

                                    namespace AbpConsoleDemo
                                    {
                                        class Program
                                        {
                                            static void Main(string[] args)
                                            {
                                                using (var application = AbpApplicationFactory.Create<AppModule>(options =>
                                                {
                                                    options.UseAutofac(); //Autofac integration
                                                }))
                                                {
                                                    //...
                                                }
                                            }
                                        }
                                    }

                */
        </script>
    </body>
</html>